昨天提到 For
迴圈,今天要說的是 While
迴圈,
兩者到底有什麼不一樣呢?
for 迴圈 => 用在已知需要幾次迴圈的狀況
while 迴圈 => 用在只知道條件,但不知道幾次迴圈的狀況
當while內的條件成立就會執行內部程式碼,當程式需要不斷重覆某些運算,一直到出現符合設置的條件狀況才停止,這種情形就比較適合用 while。
while用法:
while 條件:
重複執行
跑出 0-9
x = 0
while (x < 10):
print (x)
x += 1
加總0~9
sum = 0
i = 1
while i < 10:
sum += i
i += 1
print(sum)
結果
45
在迴圈通常要把“內部動作”執行完一遍之後,才會重新比對迴圈條件是否成立。但在某些時候我們希望他不要執行“內部動作”,跳過這次回圈,直接重新比對迴圈條件是否成立,這時候就是使用continue
。
通常搭配 if...當某個條件成立,就跳過“執行內容”直接進入下一個迴圈。
for 或 while ( ..... ):
......
if (條件式)
continue
......
範例: 0~9加總,但排除5
x=0
sum=0
while x<10:
if(x==5):
x+=1
continue
sum += x
x += 1
print(sum)
結果
40
break 用來停止 while 執行,while 為True 表示迴圈永遠成立,會一直執行。如果在迴圈內部加上 if 判斷條件和 break,就能讓迴圈條件成立的情況下結束執行。
for 或 while ( ..... ):
......
if (條件式)
break
......
範例: 0~9加總,讓while 為True 表示迴圈永遠成立,當x=10則停止。
x = 0
sum = 0
while True:
sum += x
x += 1
if(x==10):
break
print(sum)
來做個猜數字遊戲吧!
首先先亂數產生一個數字!
亂數產生需要用到
import random #先import random
number = random.randint(0,100) #random 的範圍為0~100
範例:
import random
number = random.randint(0,100)
max = 100
min = 1
while True:
guess = int(input('Guess a number between '+ str(min) + ' and ' + str(max) + ': '))
if guess < number:
min = guess
elif guess > number:
max = guess
else:
print('Bingo! Number is ' + str(guess))
break
玩玩看
Guess a number between 1 and 100: 80
Guess a number between 1 and 80: 50
Guess a number between 1 and 50: 25
Guess a number between 1 and 25: 10
Guess a number between 10 and 25: 20
Guess a number between 10 and 20: 15
Guess a number between 15 and 20: 18
Bingo! Number is 18